<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        *{
            margin: 0;padding: 0
        }
        .wrap{
            width: 700px;
            /* height: 700px; */
            border: 10px solid #000;
            margin: 50px auto;
        }
        .box1,.box2,.box3{
            width: 200px;
            height: 200px;
            float: left;
        }
        .box1{
            background: red
        }
        .box2{
            background: green
        }
        .box3{
            background: blue
        }
        /* .clear-fix{
            clear: both
        } */
        .clear-fix::after{
                content:'写一些文本或者直接为空';
                width:100%;
                height:0;
                display:block;
                overflow:hidden;
                visibility:hidden;
                clear:both;
            }
            .clear-fix{
                zoom:1 /* IE低版本浏览器高度塌陷 */
            }
    </style>
</head>
<body>
    <div class="wrap clear-fix">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
        <!--建议使用这个固定的类名 -->
        <!-- <div class="clear-fix"></div> -->
    </div>
</body>
</html>
<!-- 
    高度塌陷/高度坍塌
        造成的原因:父级没有高度，子级元素含有浮动属性
            - 不给父级设置高度是因为height:auto或者不设置的前提下，当前元素会自适应高度
            - 子级元素含有浮动(脱离文档流),无法撑开父级元素的高度
        
        1.给父级加高度 height:value
            优点:能解决高度塌陷
            缺点:无法做到自适应

        2.给父级添加overflow:hiiden
            原理:触发了BFC(块级格式化上下文)，BFC中计算属性，浮动属性也参与计算
            优点:能够自适应
            缺点:如果子级元素有超出当前区域的部分会被隐藏

        3.在当前最后一个子元素位置后加一个标签(div),给这个标签添加clear:both
            - 属性的解释:clear 清除浮动
            - 属性值: both left right
            原理:清除上方预留的空间,清除浮动
            优点:清除方便
            缺点:添加多余的标签，代码冗余，影响正常的网页布局

        4.万能清除法:给出现高度塌陷的区域添加一下代码
            .clear-fix::after{
                    content:'写一些文本或者直接为空',
                    width:100%;
                    height:0;
                    display:block;
                    overflow:hidden;
                    visibility:hidden;
                    clear:both;
            }
            优点:万能
            缺点:兼容,难理解~
 -->